package com.gmrz.uaf.crypto.spi;

import com.gmrz.uaf.crypto.spi.handlers.AttestationCertHandler;
import com.gmrz.uaf.crypto.spi.handlers.CipherHandler;
import com.gmrz.uaf.crypto.spi.handlers.HMACHandler;
import com.gmrz.uaf.crypto.spi.handlers.HashHandler;
import java.security.GeneralSecurityException;
import java.util.List;
import java.util.Map;
import java.util.Properties;

public interface CryptoService
{
  void initialize(Properties paramProperties)
    throws GeneralSecurityException;

  List<UAFAuthAlgorithmSuite> getSupportedAlgos();

  List<UAFKeyFormat> getSupportedKeyFormats();

  AttestationCertHandler getAttestationCertHandler();

  Map<String, CipherHandler> getCipherHandlers();

  Map<String, HashHandler> getHashHandlers();

  Map<String, HMACHandler> getHMACHandlers();
}